At present there are two types of IC cards: IC cards which essentially comprise a memory and are not fitted with a microprocessor or the like; IC cards which are fitted with a microprocessor, memory and inputs/outputs. The term "IC card" will refer hereafter to IC cards fitted with a microprocessor or the like.
The inputs/outputs of an IC card essentially comprise a both-way serial communications line for interchanging data with an external device, and a clock line (CK) enabling an external clock signal to be applied for the purpose of clocking the microprocessor of the IC card.
At present, IC cards are required to comply with international standard ISO 7816-3, which defines electrical characteristics. In compliance with that standard, each byte is transmitted over the serial communications line, and is put into the following serial format: a start bit (always 0), eight data bits D0 to D7 or D7 to D0 (in positive or negative logic), a parity bit (odd or even), and a stop bit. Each IC card is also characterized by an elementary time unit corresponding to the time required to transmit one bit on the serial communications line. This elementary time unit is abbreviated ETU in the above-mentioned standard, and for a given IC card it depends on a factor F/D and on the frequency Fs of the clock signal applied to the IC card. More precisely, the elementary time unit ETU in seconds for an IC card is given by the formula: ETU=(F/D)/Fs. Each IC card is given predetermined values for the parameters F and D. In particular, the above-mentioned standard specifies that the parameter F can take the following values: 372, 558, 744, 1116, 1488, 1860, 512, 768, 1024, 1536, and 2048, and that the parameter D can take the following values: 1, 2, 4, 8, 16, 32, 20, 1/2, 1/4, 1/8, 1/16, 1/32, and 1/64. With certain types of IC card, the values for the parameters F and D can also be modified, thereby making it possible advantageously to modify the speed of dialog with the IC card.
There are two different ways in which data can be interchanged, in reception and/or transmission, between an IC card and an external device implementing a microprocessor, such as an IC card reader, a programmer, or a tester: purely software processor means implemented by the microprocessor of the external device; or an electronic interface implemented between the microprocessor of the external device and the IC card for the purpose of controlling communication with the IC card over the serial communications line of the IC card.
With purely software processing, the microprocessor of the external device must know the elementary time unit ETU of the IC card. On reception, the software implemented by the microprocessor of the external device is designed, for example, to scan the serial communications line of the IC card in order to detect the first start bit sent by the IC card over the serial communications line, so that starting from detection of the start bit, it samples the state of the serial communications line at predetermined time intervals corresponding to the elementary time unit ETU of the IC card, and finally, on reception, it takes the bits it has received and serializes (reconstitutes) the byte as transmitted by the card (data bits D0 to D7). Implementing software type processing requires software timing to be simulated that is calibrated as a function of the frequency of the clock signal applied to the IC card and as a function of the parameters F and D, i.e. as a function of the elementary time unit ETU for which the IC card is configured. In addition, with software processing, serialization of the bits, e.g. to reconstitute a received byte, can be performed using a long elementary time unit ETU, e.g. equal to 104 .mu.s, which corresponds to the conventional transmission speed of 9600 bauds, but which gives rise to problems with shorter elementary time units, particularly units that are of the order of a few microseconds. It is necessary for the microprocessor to have processing power that is sufficient to enable the instructions of the software to be performed within the time made available by the speed of dialog with the IC card. That is why the software solution for controlling data interchange with an IC card is suitable solely for applications that implement IC card dialog speeds that are low.
To dialog with an IC card at higher speeds, i.e. in other words with an IC card configured to use a shorter elementary time unit, it is preferred to adopt the second solution, i.e. to implement an electronic interface between the IC card and the microprocessor of the external device, which interface is designed to control communication with the IC card via the serial communications line of the IC card.
At present, all electronic communications interfaces for IC cards use data serialization means that enable a byte to be reconstituted on reception, and that enable a byte to be decomposed on transmission. As a general rule, such serialization means are made using a standard component of the ACIA, EPCI, . . . , type, dedicated to mode serialization, and associated with a crystal or an oscillator for clocking its operation. At present, the means for serializing data on transmission or on reception are clocked by a first clock signal at a predetermined fixed frequency delivered by a crystal or an oscillator, and the microprocessor of the IC card is clocked from a second clock signal which is applied to the clock line (CK) of the IC card.
Standard components available on the market and dedicated to serialization generally include programmable clock dividers and are thus capable of taking a clock signal at a fixed frequency which is applied thereto for clocking purposes, and operating at various transmission speeds which correspond to the speeds commonly used between computers, i.e. in practice the following baud rates: 300, 600, 9600, 19200, 38400, and 115200. Programming the transmission speed of the component to one of the above-mentioned values is usually performed by initializing a parameter to a predetermined value in a register of the component. Thus, in the above-mentioned presently-known communications interfaces, in order to be able to dialog between the standard component dedicated to serialization and the IC card, it is necessary to program both the communications speed of the standard component and the elementary time unit ETU of the IC card to values that are compatible. The elementary time unit ETU of the IC card can be programmed either (first solution) by loading appropriate values for the parameters F and D into the IC card, or else (second solution) by appropriate adjusting the frequency of the clock signal applied to the card so that the elementary time unit ETU of the card is compatible with the transmission speed of the serialization means.
At present, whichever solution is used, the main drawback of presently-known communications interfaces is that they are capable of dialog with an IC card only at a determined transmission speed which is fixed by the serialization means of the interface and which can take only a very limited number of values. Furthermore, these transmission speed values are relatively small, and in particular they D0 not make it possible to dialog with an IC card at the maximum transmission capacity of the microprocessor of the IC card. For example, for a clock applied to the IC card at a frequency of 3.57 MHz, and for parameters F and D respectively equal to 372 and 1, the elementary time unit of the IC card is 104 .mu.s, which corresponds to a transmission speed of 9600 baud; that transmission speed is compatible with the usual transmission values of a standard serialization component, and it is possible to program the standard component as a function of the frequency of the crystal or oscillator clocking the component, so as to set the transmission speed of the component at 9600 baud. However, if it is desired, for example, to dialog with an IC card configured with an elementary time unit that is considerably shorter, e.g. 4.65 .mu.s (clock applied to the card at a frequency of 5 MHz, and parameters F and D respectively equal to 372 and 16), which corresponds to a transmission speed of 215000 baud, then it is no longer possible to program a standard serialization component to obtain such a transmission speed.
European patent applications EP-A-0 347 894 and EP-A-0 617 379, describe devices enabling read and write operations to be performed with an IC card and which implement a communications interface in which the second of the above-mentioned solutions is used, i.e. the elementary time unit ETU of the IC card is made compatible with the transmission speed of the serialization means of the interface by adjusting the frequency of the clock signal applied to the IC card.
More particularly, in European patent application EP-A-0 347 894, the clock signal applied to the IC card is generated either from a first clock signal at a predetermined fixed frequency that is equal, for example, to 14.7456 MHz (signal referenced 30 in FIG. 2 of that publication, and generated by the clock generator referenced 21), or else by a second clock signal of predetermined frequency, e.g. equal to 7.15909 MHz (signal referenced 31 and taken from the clock generator 32). More particularly, the selected first or second clock signal feeds a frequency divider whose function is to deliver the clock signal that is applied to the IC card at a frequency ratio that is programmed by the processor means (MPU). This frequency ratio is determined by said processor means MPU on the basis of the values of the parameters F and D of the IC card as previously read during initialization of the IC card. In that publication, the serialization means for transmission and reception of data interchanged with the IC card form an integral portion of the above-mentioned processor means MPU, and are not described. In particular, the clock signal for clocking said serialization means is not explained. In any event, it can be deduced from that publication, that the processor means MPU are designed to interchange data with the IC card at a predetermined dialog speed that cannot be modified, and are designed to operate on initialization of the IC card to recover the parameters F and D that are characteristic of the elementary time unit ETU of the IC card and to load the frequency divider with the appropriate division ratio, such that the clock signal applied to the IC card makes it possible to obtain an elementary time unit ETU which is compatible with the predetermined dialog speed of the processor means MPU.
In European patent application EP-A-0 617 379, the clock signal applied to the IC card corresponds either to the clock signal delivered by a first oscillator A, after the frequency of the signal has been divided, or else to the clock signal delivered by a second oscillator B. The signals delivered by the oscillators A and B are at predetermined fixed frequencies. The signal delivered by the oscillator A is also used as the reference clock signal for the transmission and reception serialization means. These serialization means are constituted by a standard component (UART). Such a standard component is designed to be clocked by a reference clock signal at a predetermined fixed frequency which corresponds to the frequency of the oscillator A. Such a standard component may optionally include a plurality of registers, enabling the speed at which data is transmitted or received by the serialization means to be set to a value that is predetermined, but only from a limited selection of discrete values. In a manner similar to above-mentioned European patent application EP-A-0 347 894, in the apparatus described in European patent application EP-A-0 617 379, the speed at which data is interchanged between the IC card and the serialization means UART is fixed at a predetermined value which can optionally, and at best, be selected from a limited number of discrete values, and the clock signal feeding the IC card is set to a value that enables the elementary time unit ETU of the IC card to be made compatible with the predetermined dialog speed of the serialization means.